{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2 Physical GPUs, 2 Logical GPUs\n"
     ]
    }
   ],
   "source": [
    "import tensorflow as tf\n",
    "import graphgallery \n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "\n",
    "# Set if memory growth should be enabled for ALL `PhysicalDevice`.\n",
    "graphgallery.set_memory_growth()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'2.1.0'"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tf.__version__"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'0.4.0'"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "graphgallery.__version__"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Load the Datasets\n",
    "+ cora\n",
    "+ citeseer\n",
    "+ pubmed"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Downloaded dataset files have existed.\n",
      "Processing...\n",
      "Processing completed.\n"
     ]
    }
   ],
   "source": [
    "from graphgallery.data import Planetoid\n",
    "\n",
    "# set `verbose=False` to avoid these printed tables\n",
    "data = Planetoid('cora', root=\"~/GraphData/datasets/\", verbose=False)\n",
    "graph = data.graph\n",
    "idx_train, idx_val, idx_test = data.split()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'citeseer', 'cora', 'pubmed'}"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.supported_datasets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test accuracy 68.10%\n",
      "CPU times: user 7.52 s, sys: 196 ms, total: 7.71 s\n",
      "Wall time: 2.52 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "from graphgallery.nn.models import Deepwalk\n",
    "model = Deepwalk(graph)\n",
    "model.build()\n",
    "model.train(idx_train)\n",
    "accuracy = model.test(idx_test)\n",
    "print(f'Test accuracy {accuracy:.2%}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "embeddings = model.embeddings"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.manifold import TSNE\n",
    "X_embedded = TSNE(n_components=2).fit_transform(embeddings)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/jtli/anaconda3/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:211: RuntimeWarning: Glyph 8722 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/home/jtli/anaconda3/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:180: RuntimeWarning: Glyph 8722 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 252x189 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "with plt.style.context(['science', 'no-latex']):\n",
    "    plt.scatter(X_embedded[:,0], X_embedded[:,1], c=graph.labels, cmap=plt.cm.Spectral)\n",
    "    plt.autoscale(tight=True)\n",
    "    plt.show()    "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
